The print data pipeline of a printer performs a number of operations upon print data which enters the pipeline in preparation for printing. These operations include: print data compression, print data decompression, color space conversion, and halftoning. The type of operation performed and the specific order in which the operations are performed can vary depending upon the type of print data which enters the pipeline, the capabilities of the print engine, and the memory available in the printer. The types of print data which may enter the pipeline include: text, line art, images, and graphics.
In prior art pipeline implementations, the various processing operations are performed by a processor under the control of firmware. Depending upon the type of print data entering the pipeline and the operations necessary to process the print data, a number of possible firmware routines are executed to complete the print data processing operations.
As printers increase the density of dot placement (dots per inch), add gray scale capability (using a set of bits per pixel to define a gray scale level), and include color printing capability (requiring additional bits per pixel over monochrome printing), the time required for the printer's data pipeline to process the print data has become substantial. For example, in color printing, the memory required to store data used to print a page can reach thirty two times the memory required for a monochrome printer of the same resolution.
To fully utilize the printing speed capabilities of the print engine, the data pipeline must have the capability to process print data sufficiently fast to supply a continuous stream of print data to the print engine, thereby allowing the print engine to continuously print throughout the print job.
Prior art data pipelines have been implemented using general purpose microprocessors. Although microprocessors have the versatility to be programmed to perform the operations of a data pipeline, they incur substantial overhead in performing these operations, thereby reducing the rate at which print data can be processed. The increasing amounts of print data handled by the processor performing the operations of the data pipeline requires the use of ever higher performance processors to match the printing speeds of the print engines. To improve processing performance, prior art data pipelines have employed Application Specific Integrated Circuits (ASICs) to perform specific operations such as print data compression/decompression and color space conversion. However, the time required to move data between the microprocessor, the ASIC, and memory still contributes considerable overhead to the data pipeline processing operations.
A need exists for a data pipeline having improved speed with which data can be processed while retaining the versatility of a data pipeline implemented with a microprocessor. However, since such a data pipeline is preferably controlled by image processing firmware, it is subject to change when the firmware is altered. Since it is also preferable that the pipeline be configured in the form of an ASIC, such changes can result in design alterations being required of the ASIC to conform to the firmware changes, an obviously expensive proposition.
Accordingly, it is an object of this invention to provide a data pipeline that is configured to accommodate a variety of image processing procedures.
It is another object of this invention to provide a means and method for control of a data pipeline which enables the pipeline to be shielded from the effects of changes to image processing firmware